Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2018, 22:22
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

Странный вызов AJAX
Здравствуйте, не могу понять что делает этот код в вызове AJAX:
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
var xhr = new XHR();

тут на сайте AJAX по другому совсем вызывают. Может кто-то объяснить зачем это сделано?
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 31.12.2018, 02:25
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

XDomainRequest - это реализация управления доступом HTTP (CORS), которая работала в Internet Explorer 8 и 9. Она была удалена в Internet Explorer 10 в пользу использования XMLHttpRequest с правильным CORS. Если вы ориентируетесь на Internet Explorer 10 или 11, или хотите поддерживать любой другой браузер, вам необходимо использовать XMLHttpRequest или Fetch API.

https://developer.mozilla.org/ru/docs/Web/HTTP/CORS
Ответить с цитированием
  #3 (permalink)  
Старый 31.12.2018, 21:15
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

Я это понял. При чем тут onload и что это за хитрая штука такая:
"onload" in new XMLHttpRequest()

Onload то типо страница прогрузилась?
Ответить с цитированием
  #4 (permalink)  
Старый 31.12.2018, 21:53
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Начинающий-Js-кодер,
https://learn.javascript.ru/ajax-xml...xdomainrequest
Цитата:
В IE8 и IE9 поддержка XMLHttpRequest ограничена:

Не поддерживаются события, кроме onreadystatechange.
Некорректно поддерживается состояние readyState = 3: браузер может сгенерировать его только один раз во время запроса, а не при каждом пакете данных. Кроме того, он не даёт доступ к ответу responseText до того, как он будет до конца получен.
Сообщение от Начинающий-Js-кодер
Onload то типо страница прогрузилась?
Нет, строка проверяет есть ли у объекта свойство "onload".

Последний раз редактировалось Nexus, 31.12.2018 в 21:56.
Ответить с цитированием
  #5 (permalink)  
Старый 31.12.2018, 22:22
Кандидат Javascript-наук
Отправить личное сообщение для Начинающий-Js-кодер Посмотреть профиль Найти все сообщения от Начинающий-Js-кодер
 
Регистрация: 12.06.2016
Сообщений: 130

А я вот так делал всегда:
var factories = [
	    function(){return new ActiveXObject("Msxml2.XMLHTTP")},
	    function(){return new ActiveXObject("Msxml3.XMLHTTP")},
	    function(){return new ActiveXObject("Microsoft.XMLHTTP")},
	    function(){return new XMLHttpRequest()}
	],
	count = factories.length,
	XMLHttp = false;
	while(count--){
	    try{
		XMLHttp = factories[count]();
	    }catch(e){
		continue;
	    }
	    break;
	}

То есть у меня не кроссбраузерно?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи, вызов нескольких функций из input, ajax alagor Общие вопросы Javascript 2 10.02.2016 17:35
Вызов Ajax при клике по textarea alex72bel AJAX и COMET 1 09.01.2016 05:21
Вызов формы, при повторном вызове (ajax) soltx Элементы интерфейса 3 07.09.2014 23:07
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
AJAX, вызов из метода обьекта Logo Общие вопросы Javascript 4 20.06.2009 23:35